// 邻接矩阵的广度遍历算法
void BFSTraverse(MGraph G)
{
	int i, j;
	Queue Q;	
	
	for( i=0; i < G.numVertexes; i++ )		//numVertexes记录图的结点数
	{
		visited[i] = FALSE;					//每个结点标志为未访问
	}
	
	initQueue( &Q );						//初始化队列,用于保存，被访问的结点
	
	for( i=0; i < G.numVertexes; i++ )		
	{
		if( !visited[i] )					//该结点未被访问过，则访问该结点
		{
			printf("%c ", G.vex[i]);		//打印结点的名字
			visited[i] = TRUE;				//将这个结点标志为已访问
			EnQueue(&Q, i);					//插入队列
			
			while( !QueueEmpty(Q) )							//只要队列非空 
			{
				DeQueue(&Q, &i);							//弹出队列，将内容存在i
				for( j=0; j < G.numVertexes; j++ )			
				{
					if( G.art[i][j]==1 && !visited[j] )		//如果i与j有边且j没有被访问过
					{
						printf("%c ", G.vex[j]);			//打印结点的名字
						visited[j] = TRUE;					//将这个结点标志为已访问
						EnQueue(&Q, j);						//插入队列
					}
				}
			}
		}
	}
}